/**
 * ____________________ *
 *  ____ ____ ____ _  _ *
 *  |___ [__] |--< |\/| *
 * ____________________ *
 *
 * THE CORM PROJECT
 *
 * This file may only be used in accordance with the
 * terms of the Academic Free License ("AFL") v. 3.0,
 * as published by the Open Software Initiative.  A
 * copy of this license is provided in this source
 * release, and may be viewed online at:
 *
 * (http://www.opensource.org/licenses/afl-3.0.php)
 */
package org.eremite.corm.party;

import org.eremite.corm.Archetype;
import org.eremite.corm.party.address.AssociatedAddress;
import org.eremite.corm.party.relationship.Capability;
import org.eremite.corm.party.relationship.PartyRole;

import java.util.HashSet;
import java.util.Set;

public class Party
        extends Archetype {

    private long id;
    private Set <AssociatedAddress> addresses = new HashSet <AssociatedAddress> ();
    private AssociatedAddress preferredAddress;
    private Set <Preference> preferences = new HashSet <Preference> ();
    private Set <RegisteredIdentifier> registeredIds = new HashSet <RegisteredIdentifier> ();
    private Set <Capability> capabilities = new HashSet<Capability>();
    private Set <PartyRole> roles = new HashSet <PartyRole> ();

    /* Default Zero-arg Constructor */
    public Party() {}

    public long getID() {
        return id;
    }

    public void setID(long id) {
        this.id = id;
    }

    public Set<AssociatedAddress> getAddresses() {
        return addresses;
    }

    public void setAddresses(Set<AssociatedAddress> addresses) {
        this.addresses = addresses;
    }

    public AssociatedAddress getPreferredAddress() {
        return preferredAddress;
    }

    public void setPreferredAddress(AssociatedAddress address) {
        this.preferredAddress = address;
    }

    public Set<Preference> getPreferences() {
        return preferences;
    }

    public void setPreferences(Set<Preference> preferences) {
        this.preferences = preferences;
    }

    public Set<RegisteredIdentifier> getRegisteredIdentifiers() {
        return registeredIds;
    }

    public void setRegisteredIdentifiers(Set<RegisteredIdentifier> registeredIds) {
        this.registeredIds = registeredIds;
    }

    public Set<PartyRole> getPartyRoles() {
        return roles;
    }

    public void setPartyRoles(Set<PartyRole> roles) {
        this.roles = roles;
    }

    public Set<Capability> getCapabilities() {
        return this.capabilities;
    }

    public void setCapabilities(Set<Capability> capabilities) {
        this.capabilities = capabilities;
    }

}